home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / byte0987.arc / REUSESOF.ARC / SORT.MOD < prev    next >
Text File  |  1986-07-15  |  662b  |  31 lines

  1. IMPLEMENTATION MODULE Sort;
  2.  
  3.     FROM SortElemType IMPORT ElemType, compare;
  4.  
  5. PROCEDURE Qsort (VAR A: ARRAY OF ElemType; N: CARDINAL);
  6.  
  7.    PROCEDURE sort (l, r: INTEGER);    (* N. Wirth '86 *)
  8.      VAR  i, j : INTEGER;
  9.          x, w : ElemType;
  10.    BEGIN
  11.      i:= l; j:= r;
  12.      x:= A[(l+r) DIV 2];
  13.      REPEAT
  14.         WHILE compare(A[i],x) DO INC(i) END;
  15.         WHILE compare(x,A[j]) DO DEC(j) END;
  16.         IF i <= j
  17.         THEN w:= A[i]; A[i]:= A[j]; A[j]:= w;
  18.           INC(i); DEC(j)
  19.         END;
  20.      UNTIL i > j;
  21.      IF l < j THEN sort(l,j) END;
  22.      IF i < r THEN sort(i,r) END
  23.    END sort;
  24.  
  25. BEGIN
  26.    IF N > HIGH(A)+1 THEN N:= HIGH(A)+1 END;
  27.    sort(0,N-1)
  28. END Qsort;
  29.  
  30. END Sort.
  31.